# 请在...处使用多行代码替换
#
# 注意：其他已给出代码仅作为提示，可以修改
'''
某班学生评选一等奖学金，学生的10[主干课成绩存在考生文件夹下文件score. txt中，每行为一个学
生的信息，分别记录了学生学号、姓名以及10门课成绩，格式如下:
1820161043 郑珉镐 68 66 83 77 56 73 61 69 66 78
1820161044 沈红伟 91 70 81 91 96 80 78 91 89 94
从这些学生中选出奖学金候选人，条件是: 1) 总成绩排名在前10名; 2) 全部课程及格(成绩大于等于60)。
问题1:给出按总成绩从高到低排序的前10名学生名单，并写入文件candi date0. txt,每行记录- -个学生的信
息，分别为学生学号、姓名以及101 ]课成绩。补充考生文件夹下文件PY301-1. py,完成这一功能。
'''
# 打开文件
fp = open(r'score.txt')
# 准备写入文件
fw = open(r'candidate0.txt', 'w')

# L中的元素是学生原始成绩和总成绩
L = []
# 循环处理
for score in fp:
    # 列表L中添加的是 ['1820161043', '郑珉镐', '68', '66', '83', '77', '56', '73', '61', '69', '66', '78']
    L.append(score.replace('\n', '').split(' '))

# 循环处理文件之后, 列表L中的内容为:
'''
[['1820161043', '郑珉镐', '68', '66', '83', '77', '56', '73', '61', '69', '66', '78'], 
['1820161044', '沈红伟', '91', '70', '81', '91', '96', '80', '78', '91', '89', '94'],
......
['1320170211', '汪清爽', '75', '85', '57', '62', '77', '91', '89', '64', '79', '66']]
'''
# 对已经处理的数据进行加工
for i in L:
    # 截取个人的信息,只保留成绩部分  ['75', '85', '57', '62', '77', '91', '89', '64', '79', '66']
    tmp = i[2:]
    # 成绩求和
    s = 0
    for j in tmp:
        s += int(j)
    # 将总成绩 添加回 i 中为接下来排序做准备
    i.append(s)
    '''
    i 中的内容 因为 i是L中的元素 所以修改了i L中相对应的元素也会修改
    ['1820161043', '郑珉镐', '68', '66', '83', '77', '56', '73', '61', '69', '66', '78', 697]
    '''
# 按照每个列表中的总成绩排序 降序
L.sort(key=lambda x: x[-1], reverse=True)  # 按学生总成绩从大到小排序
print(L)
'''
['1120161858', '房正康', '95', '96', '93', '54', '93', '100', '84', '97', '94', '87', 893],
'''
# 将前10名写入文件  candidate0.txt
for i in range(10):
    # 拼接写入
    tmp = ''
    # 除去总成绩 即为原始数据
    for j in L[i][:-1]:
        tmp += j + ' '
    # 去掉末尾的空格并 添加一个换行符
    fw.write(tmp[:-1] + '\n')

# 关闭文件 释放资源
fw.close()
fp.close()
